package com.axzhengxin.platform.business.domain;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import com.axzhengxin.platform.afterloan.domain.FspCorInf;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 客户需求对象 biz_apply_info
 *
 * @author axzhengxin
 * @date 2021-02-20
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class BizApplyInfo extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 需求id
     */
    private String reqId;

    /**
     * 客户编号
     */
    @Excel(name = "客户编号")
    private String customerId;

    /**
     * 需求类型
     */
    @Excel(name = "需求类型")
    private String applyType;

    /**
     * 产品代码
     */
    @Excel(name = "产品代码")
    private String productId;

    /**
     * 产品名称
     */
    @Excel(name = "产品名称")
    private String productName;

    /**
     * 融资金额
     */
    @Excel(name = "融资金额")
    private BigDecimal financeAmount;

    /**
     * 融资时间（3、6、12个月等）
     */
    @Excel(name = "融资时间", readConverterExp = "3=、6、12个月等")
    private Integer financeTime;

    /**
     * 需求发布时间
     */
    private String pubTime;

    /**
     * 担保方式
     */
    @Excel(name = "担保方式")
    private String guaranteeType;

    /**
     * 已抢单数量（仅适用于不定向需求）
     */
    @Excel(name = "已抢单数量", readConverterExp = "仅=适用于不定向需求")
    private Integer checkedCount;

    /**
     * 上年度销售额
     */
    @Excel(name = "上年度销售额")
    private BigDecimal lastYearSales;

    /**
     * 上年度纳税额
     */
    @Excel(name = "上年度纳税额")
    private BigDecimal lastYearTaxAmount;

    /**
     * 当前银行负债额
     */
    @Excel(name = "当前银行负债额")
    private BigDecimal currentBankBill;

    /**
     * 渤海银行业务流水号
     */
    @Excel(name = "渤海银行业务流水号")
    private String bohaiBankSn;

    /**
     * 是否已同步到应急贷款企业表（0:未同步;1:已同步）
     */
    @Excel(name = "是否已同步到应急贷款企业表", readConverterExp = "0=:未同步;1:已同步")
    private String urgentSyncStatus;

    /**
     * 是否已推送到省平台（0:未推送;1:已推送）
     */
    @Excel(name = "是否已推送到省平台", readConverterExp = "0=:未推送;1:已推送")
    private String pushStatus;

    /**
     * 推送渠道代码
     */
    @Excel(name = "推送渠道代码")
    private String pushChannel;

    /**
     * auditing-审核流程  apprve 授信流程 loan 放款流程
     */
    @Excel(name = "流程类型")
    private String type;
    /**
     * 抢单人组
     */
    private String checkInIds;

    /**
     * 对应客户信息 非表中字段 客户名称 所属地域 地域ID
     */
    private String customerName;
    private String customerArea;
    private String customerAreaNo;

    /**
     * 非表中字段  创建人所属部门 创建人名称
     */
    private String createName;
    private String createDept;
    /**
     * 非表中字段  流程状态（0010待发起 1010处理中 2000已完成 3000已拒绝）
     */
    private Integer status;

    /**
     * 复合状态查询
     */
    private Integer statusAnother;

    /**
     * 流程类型
     */
    private String bizType;

    /**
     * 关联授信对象
     */
    private BizApproveInfo bizApproveInfo;

    /**
     * 总体业务状态映射
     */
    private String statusTag;

    /**
     * 下一处理人ID
     */
    private String nextUserId;

    /**
     * 非表中字段 行业号 行业名称
     */
    private String pciBelongNo;
    private String pciBelongType;

    /**
     * 是否可以抢单的标记
     */
    private boolean checkInFlag;

    /**
     * 当前处理人部门
     */
    private String currentNodeDeptId;
    /**
     * 当前处理人ID
     */
    private String currentNodeUserId;
    /**
     * 关联订单流程
     */
    private String flowUid;
    /**
     * 授信合同号
     */
    private String approveContractNo;
    /**
     * 授信起始时间
     */
    private String approveStart;
    /**
     * 授信结束时间
     */
    private String approveEnd;
    /**
     * 授信金额
     */
    private BigDecimal approveAmount;

    /**
     * 授信ID
     */
    private String approveId;
    /**
     * 起始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private String startTime;
    /**
     * 终止时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private String endTime;


    /**
     * 企业对象
     */
    private FspCorInf fspCorInf;

    /**
     * 对应放款集合
     */
    private List<BizLoanInfo> bizLoanInfoList;

    /**
     * 对应还款集合
     */
    private List<BizRepaymentInfo> bizRepaymentInfoList;

    /**
     * 对应还款集合
     */
    private List<BizApproveInfo> bizApproveInfoList;

    /**
     * 对应担保集合
     */
    private List<BizApplyWarrantRelative> bizApplyWarrantRelativeList;


    /**
     * 对应综合授信集合
     */
    private List<BizApproveDetail> detailList;

    /**
     * 对应综合授信集合
     */
    private List<BizApplyGuaranteePledgeRelative> bizApplyGuaranteePledgeRelativeList;

    /**
     * 对应综合授信集合
     */
    private List<BizPledgeInfo> bizPledgeInfoList;
    /**
     * 预授信金融机构ID
     */
    private String financeOrg;

    /**
     * 预授信机构名称
     */
    private String financeName;

    /**
     * 预授信金额
     */
    private String warrantAmount;

    /**
     * 用户Ｉｄ
     */
    private String userId;

    /**
     * 担保ID
     */
    private String warrantId;
    /**
     * 非表中字段
     */
    private String deptName;
    private String userName;
    private Integer financeAmountTotal;
    private Integer approveAmountTotal;
    private Integer loanAmountTotal;
    private BigDecimal loanAmount;
    private BigDecimal loanAmountAll;
    private Long deptId;
    private Integer amountFlag;

    /**
     * 部门IDs
     */
    private List<String> deptIds;

    /**
     * 关联需求ID 判断是否存在已抢单
     */
    private String bizId;


    private List<BizRoomInfo> bizRoomInfos;

    private BigDecimal sumApproveAmount;

    private List<BizFactoringInfo> bizFactoringInfos;

    private List<BizRenewLoanInfo> bizRenewLoanInfos;

    /**
     * 产品类型
     */
    private String productType;

    /**
     * 联系人电话号
     */
    private String conPhone;
    /**
     * 联系人姓名
     */
    private String conName;

    private Integer businessType;
}
